home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / c / unixSyscall / RCS / vfork.c,v < prev    next >
Text File  |  1991-08-22  |  2KB  |  101 lines

  1. head     1.2;
  2. branch   ;
  3. access   ;
  4. symbols  ;
  5. locks    mottsmth:1.2; strict;
  6. comment  @ * @;
  7.  
  8.  
  9. 1.2
  10. date     88.07.29.17.41.08;  author ouster;  state Exp;
  11. branches ;
  12. next     1.1;
  13.  
  14. 1.1
  15. date     88.06.19.14.32.12;  author ouster;  state Exp;
  16. branches ;
  17. next     ;
  18.  
  19.  
  20. desc
  21. @@
  22.  
  23.  
  24. 1.2
  25. log
  26. @Lint.
  27. @
  28. text
  29. @/* 
  30.  * vfork.c --
  31.  *
  32.  *    Procedure to map from Unix vork system call to Sprite.
  33.  *
  34.  * Copyright (C) 1986 Regents of the University of California
  35.  * All rights reserved.
  36.  */
  37.  
  38. #ifndef lint
  39. static char rcsid[] = "$Header: vfork.c,v 1.1 88/06/19 14:32:12 ouster Exp $ SPRITE (Berkeley)";
  40. #endif not lint
  41.  
  42. #include "sprite.h"
  43. #include "status.h"
  44. #include "proc.h"
  45.  
  46. #include "compatInt.h"
  47.  
  48.  
  49. /*
  50.  *----------------------------------------------------------------------
  51.  *
  52.  * vfork --
  53.  *
  54.  *    Procedure to map from Unix vfork system call to Sprite Proc_Fork.
  55.  *
  56.  * Results:
  57.  *    UNIX_ERROR is returned upon error, with the actual error code
  58.  *    stored in errno.  Upon success, the value of pid is returned, 
  59.  *    where pid is different for child and parent.  The parent receives
  60.  *    the process id of the child in pid, and the child receives the
  61.  *    value 0.
  62.  *
  63.  * Side effects:
  64.  *    A new process is created.
  65.  *
  66.  *----------------------------------------------------------------------
  67.  */
  68.  
  69. int
  70. vfork()
  71. {
  72.     ReturnStatus status;  /* result returned by Proc_Fork */
  73.     int pid;          /* process id of child, or 0, set by Proc_Fork */
  74.  
  75.     /* Fork and share the heap since this is a vfork. */
  76.     status = Proc_Fork(TRUE, &pid);
  77.     if (status == PROC_CHILD_PROC) {
  78.     return(0);
  79.     }
  80.     if (status != SUCCESS) {
  81.     errno = Compat_MapCode(status);
  82.     return(UNIX_ERROR);
  83.     }
  84.     return((int) pid);
  85. }
  86. @
  87.  
  88.  
  89. 1.1
  90. log
  91. @Initial revision
  92. @
  93. text
  94. @d11 1
  95. a11 1
  96. static char rcsid[] = "$Header: vfork.c,v 1.1 86/07/07 15:11:57 douglis Exp $ SPRITE (Berkeley)";
  97. d45 1
  98. a45 1
  99.     Proc_PID pid;      /* process id of child, or 0, set by Proc_Fork */
  100. @
  101.